home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / python-support / python-rdflib / rdflib / plugin.py < prev    next >
Encoding:
Python Source  |  2007-04-04  |  3.6 KB  |  121 lines

  1. from rdflib.store import Store
  2. from rdflib.syntax import serializer, serializers
  3. from rdflib.syntax import parsers
  4. from rdflib import sparql
  5. from rdflib.QueryResult import QueryResult
  6.  
  7. _kinds = {}
  8. _adaptors = {}
  9.  
  10. def register(name, kind, module_path, class_name):
  11.     _module_info = _kinds.get(kind, None)
  12.     if _module_info is None:
  13.         _module_info = _kinds[kind] = {}
  14.     _module_info[name] = (module_path, class_name)
  15.  
  16. def get(name, kind):
  17.     _module_info = _kinds.get(kind)
  18.     if _module_info and name in _module_info:
  19.         module_path, class_name = _module_info[name]
  20.         module = __import__(module_path, globals(), locals(), True)
  21.         return getattr(module, class_name)
  22.     else:
  23.         Adaptor = kind # TODO: look up of adaptor, for now just use kind
  24.         try:
  25.             Adaptee = get(name, _adaptors[kind])
  26.         except Exception, e:
  27.             raise Exception("could not get plugin for %s, %s: %s" % (name, kind, e))
  28.         def const(*args, **keywords):
  29.             return Adaptor(Adaptee(*args, **keywords))
  30.         return const
  31.  
  32. def register_adaptor(adaptor, adaptee):
  33.     _adaptors[adaptor] = adaptee
  34.  
  35.  
  36. register_adaptor(serializer.Serializer, serializers.Serializer)
  37. #register_adaptor(parser.Parser, parsers.Parser)
  38.  
  39.  
  40. register('rdf', serializers.Serializer,
  41.          'rdflib.syntax.serializers.XMLSerializer', 'XMLSerializer')
  42.  
  43. register('xml', serializers.Serializer,
  44.          'rdflib.syntax.serializers.XMLSerializer', 'XMLSerializer')
  45.  
  46. register('rdf/xml', serializers.Serializer,
  47.          'rdflib.syntax.serializers.XMLSerializer', 'XMLSerializer')
  48.  
  49. register('pretty-xml', serializers.Serializer,
  50.          'rdflib.syntax.serializers.PrettyXMLSerializer', 'PrettyXMLSerializer')
  51.  
  52. register('nt', serializers.Serializer,
  53.          'rdflib.syntax.serializers.NTSerializer', 'NTSerializer')
  54.  
  55. register('turtle', serializers.Serializer,
  56.          'rdflib.syntax.serializers.TurtleSerializer', 'TurtleSerializer')
  57.  
  58. register('n3', serializers.Serializer,
  59.          'rdflib.syntax.serializers.N3Serializer', 'N3Serializer')
  60.  
  61. register('xml', parsers.Parser,
  62.          'rdflib.syntax.parsers.RDFXMLParser', 'RDFXMLParser')
  63.  
  64. register('trix', parsers.Parser,
  65.          'rdflib.syntax.parsers.TriXParser', 'TriXParser')
  66.  
  67. register('n3', parsers.Parser,
  68.          'rdflib.syntax.parsers.N3Parser', 'N3Parser')
  69.  
  70. register('notation3', parsers.Parser,
  71.          'rdflib.syntax.parsers.N3Parser', 'N3Parser')
  72.  
  73. register('nt', parsers.Parser,
  74.          'rdflib.syntax.parsers.NTParser', 'NTParser')
  75.  
  76. register('n3', parsers.Parser,
  77.          'rdflib.syntax.parsers.N3Parser', 'N3Parser')
  78.  
  79. register('rdfa', parsers.Parser,
  80.          'rdflib.syntax.parsers.RDFaParser', 'RDFaParser')
  81.  
  82. register('default', Store,
  83.          'rdflib.store.IOMemory', 'IOMemory')
  84.  
  85. register('IOMemory', Store,
  86.          'rdflib.store.IOMemory', 'IOMemory')
  87.  
  88. register('Memory', Store,
  89.          'rdflib.store.Memory', 'Memory')
  90.  
  91. register('Sleepycat', Store,
  92.          'rdflib.store.Sleepycat', 'Sleepycat')
  93.  
  94. register('BerkeleyDB', Store,
  95.          'rdflib.store.BerkeleyDB', 'BerkeleyDB')
  96.  
  97. register('MySQL', Store,
  98.          'rdflib.store.MySQL', 'MySQL')
  99.  
  100. register('SQLite', Store,
  101.          'rdflib.store.SQLite', 'SQLite')
  102.  
  103. register('ZODB', Store,
  104.          'rdflib.store.ZODB', 'ZODB')
  105.  
  106. register('sqlobject', Store,
  107.          'rdflib.store._sqlobject', 'SQLObject')
  108.  
  109. register('Redland', Store,
  110.          'rdflib.store.Redland', 'Redland')
  111.  
  112. register('MySQL', Store,
  113.          'rdflib.store.MySQL', 'MySQL')
  114.  
  115. register("sparql", sparql.Processor,
  116.          'rdflib.sparql.bison.Processor', 'Processor')
  117.  
  118. register("SPARQLQueryResult", QueryResult,
  119.          'rdflib.sparql.QueryResult', 'SPARQLQueryResult')
  120.          
  121.